# Carga de paquetes
library(dplyr)
library(DT)
library(plotly)
library(sf)
library(leaflet)
library(raster)
library(rgdal)
#carga de datos
primates <-
st_read(
'https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/primates-cr-registros.csv',
options = c(
"X_POSSIBLE_NAMES=decimalLongitude",
"Y_POSSIBLE_NAMES=decimalLatitude"
),
quiet = TRUE
)
st_crs(primates) = 4326
# Datos geoespaciales de cantones
cantones <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_cantones_simp_wgs84.geojson",
quiet = TRUE
)
primates <-
primates %>%
st_join(cantones["canton"])
# Tabla de registros de presencia
primates %>%
st_drop_geometry() %>%
dplyr::select(family, species, stateProvince, canton, eventDate) %>%
datatable(colnames = c(
"Familia",
"Especie",
"Provincia",
"Cantón",
"Fecha"),
options = list(searchHighlight = TRUE,
language = list(url = '//cdn.datatables.net/plug-ins/1.10.25/i18n/Spanish.json'),
pageLength = 10),
class = 'cell-border stripe'
)
# Gráfico
plot_ly(primates, labels = ~ species, type = 'pie'
) %>%
layout(title = 'Porcentaje de registro de primates en Costa Rica') %>%
config(locale = "es")
alt <- getData(
"worldclim",
var = "alt",
res = .5,
lon = -84,
lat = 10
)
# Capa altitud Costa Rica
altitud <- crop(alt, extent(-86, -82.3, 8, 11.3))
# Paleta de colores
pal <- colorNumeric(
c("#006400", "#FFFF00", "#3F2817"),
values(altitud),
na.color = "transparent"
)
Ateles_geoffroyi <- primates %>%
filter(species == "Ateles geoffroyi")
Alouatta_palliata <- primates %>%
filter(species == "Alouatta palliata")
Cebus_capucinus <- primates %>%
filter(species == "Cebus capucinus")
Saimiri_oerstedii <- primates %>%
filter(species == "Saimiri oerstedii")
# Mapa de porcentajes con registros de presencia
primates %>%
dplyr::select(stateProvince,
canton,
eventDate,
species) %>%
leaflet() %>%
addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
addProviderTiles(providers$Stamen.TonerLite, group = "Stamen Toner Lite") %>%
addProviderTiles(providers$Esri.WorldImagery, group = "Imágenes de ESRI") %>%
addCircleMarkers(
data = Ateles_geoffroyi,
stroke = F,
radius = 4,
fillColor = '#0b5166',
fillOpacity = 1,
popup = paste(
primates$stateProvince,
primates$canton,
primates$eventDate,
primates$species,
sep = '<br/>'
),
group = "Ateles geoffroyi"
) %>%
addCircleMarkers(
data = Alouatta_palliata,
stroke = F,
radius = 4,
fillColor = '#66610b',
fillOpacity = 1,
popup = paste(
primates$stateProvince,
primates$canton,
primates$eventDate,
primates$species,
sep = '<br/>'
),
group = "Alouatta palliata"
) %>%
addCircleMarkers(
data = Cebus_capucinus,
stroke = F,
radius = 4,
fillColor = '#660b5b',
fillOpacity = 1,
popup = paste(
primates$stateProvince,
primates$canton,
primates$eventDate,
primates$species,
sep = '<br/>'
),
group = "Cebus capucinus"
) %>%
addCircleMarkers(
data = Saimiri_oerstedii,
stroke = F,
radius = 4,
fillColor = '#0b663d',
fillOpacity = 1,
popup = paste(
primates$stateProvince,
primates$canton,
primates$eventDate,
primates$species,
sep = '<br/>'
),
group = "Saimiri oerstedii"
) %>%
addRasterImage(
altitud,
colors = pal,
opacity = 0.8,
group = "Altitud"
) %>%
addLayersControl(
baseGroups = c("OpenStreetMap", "Imágenes de ESRI", "Stamen Toner Lite"),
overlayGroups = c("Altitud", "Ateles geoffroyi", "Alouatta palliata", "Cebus capucinus", "Saimiri oerstedii")
) %>%
addMiniMap(
tiles = providers$Stamen.OpenStreetMap.Mapnik,
position = "bottomleft",
toggleDisplay = TRUE
)